home *** CD-ROM | disk | FTP | other *** search
/ Aminet 49 / Aminet 49 (2002)(GTI - Schatztruhe)[!][Jun 2002].iso / Aminet / util / wb / SmartMenu.lha / smartmenu / SmartMenuPrefs < prev    next >
Text File  |  2002-03-05  |  10KB  |  590 lines

  1. G4C
  2.  
  3. WINBIG -1 -1 230 245 SmartMenuPrefs
  4. WinType 01110010
  5. usetopaz
  6. varpath "editmenu/smenupos"
  7.  
  8.  
  9. xOnLoad
  10.     ifexists assign ~smartmenu
  11.         extract #this guipath g4cmenupath
  12.         assign smartmenu: $g4cmenupath
  13.     endif
  14.  
  15.     ifexists file ~smartmenu:prog-list.db
  16.         cli 'echo >smartmenu:prog-list.db "GCDB*N0*N4*N%menu 12 S*N%name 12 S*N%item 16 S*N%prog 256 S"'
  17.     endif
  18.  
  19.     if $*smtop = ""
  20.     and $*smleft = ""
  21.         ifexists window SmartMenu
  22.             info gui Smartmenu
  23.             *smtop = $$win.top
  24.             *smleft = $$win.left
  25.         else
  26.             *smtop = 600
  27.             *smleft = 0
  28.         endif
  29.     endif
  30.  
  31.     lvuse #this 1
  32.  
  33.     lvchange smartmenu:prog-list.db
  34.  
  35.     update #this 2 $%item
  36.  
  37.     guiload smenupos
  38.     guiload editmenu
  39.  
  40.     GuiOpen #This
  41.  
  42.     redraw #this
  43.  
  44.  
  45. xonreload
  46.     guiwindow #this front
  47.     guiwindow #this on
  48.  
  49.  
  50. xOnClose
  51.     lvuse #this 1
  52.     delete t:SmartMenu
  53.     guiquit smenupos
  54.     guiquit editmenu
  55.     GuiQuit #This
  56.  
  57.  
  58. xonfail
  59.     guiwindow #this resume
  60.  
  61.  
  62. xmenu "Projekt" "Laden" "" "L"
  63.         guiwindow #this wait
  64.             ezreq "Alte Liste laden?" Ja|Nein laden
  65.             if $laden = 1
  66.                 lvuse #this 1
  67.                 lvchange smartmenu:prog-list.db
  68.                 lvgo first
  69.                 update #this 1 0
  70.                 lvmove 0
  71.             endif
  72.         guiwindow #this resume
  73.  
  74. xmenu "Projekt" "Speichern" "" "S"
  75.         guiwindow #this wait
  76.             ezreq "Liste Speichern?" Ja|Nein spei
  77.             if $spei = 1
  78.                 lvuse #this 1
  79.                 if $$lv.total != 0
  80.                     lvuse #this 1
  81.                     lvsave smartmenu:prog-list.db
  82.                     lvgo first
  83.                     update #this 1 0
  84.                     lvmove 0
  85.                 else
  86.                     ezreq "Nix in Liste" "Na toll" ""
  87.                 endif
  88.             endif
  89.         guiwindow #this resume
  90.  
  91. xmenu "Projekt" BARLABEL "" ""
  92.  
  93. xmenu "Projekt" "Über..." "" "?"
  94.         guiwindow #this wait
  95.             setvar atxt "SmartMenu & SmartMenuPrefs\n"
  96.             appvar atxt "Copyright ©2002 by Nightshade\n\n"
  97.             appvar atxt "Diese Programme sind EmailWare!\n\n"
  98.             appvar atxt "Meine Email: thenightshade@freenet.de"
  99.                 ezreq $atxt "Okay" ""
  100.         guiwindow #this resume
  101.  
  102. xmenu "Projekt" BARLABEL "" ""
  103.  
  104. xmenu "Projekt" Beenden "" "Q"
  105.         guiwindow #this wait
  106.             ezreq "SmartMenuPrefs wirklich beenden?" Ja|Nein ende
  107.             if $ende = 1
  108.                 guiclose #this
  109.             endif
  110.         guiwindow #this resume
  111.  
  112.  
  113. box -1 -1 0 0 out button
  114. box 10 212 210 2 in ridge
  115. attr resize 0220
  116.  
  117.  
  118. XLISTVIEW 20 17 190 148 "" "lv_entry" "" 10 SHOW
  119. attr resize 0022
  120. gadid 1
  121. update #this 2 $%item
  122.  
  123. text 20 167 170 17 "" 40 box
  124. attr resize 0220
  125. gadid 2
  126.  
  127. xbutton 194 167 16 17 "P"
  128. attr resize 2200
  129.     guiclose smenupos
  130.     if $savepos != 1
  131.         ifexists window SmartMenu
  132.             info gui SmartMenu
  133.             top = $$win.top
  134.             left = $$win.left
  135.             changearg smenupos 0 0 $left
  136.         else
  137.             top = $*smtop
  138.             left = $*smleft
  139.         endif
  140.     else
  141.         top = $*smtop
  142.         left = $*smleft
  143.     endif
  144.     changearg smenupos 0 0 $left
  145.     changearg smenupos 0 1 $top
  146.     guiopen smenupos
  147.  
  148.  
  149. XBUTTON 20 190 32 17 "Neu"
  150. guiopen editmenu new
  151. attr resize 0200
  152.  
  153. xbutton 55 190 32 17 "Änd"
  154. attr resize 0200
  155. lvuse #this 1
  156. if $$lv.total != 0
  157.     guiopen editmenu edit
  158. else
  159.     flash
  160. endif
  161.  
  162. XBUTTON 90 190 32 17 "Lös"
  163. attr resize 0200
  164. guiwindow #this wait
  165.     lvuse #this 1
  166.     if $$lv.total != 0
  167.         extract %item clean delitem
  168.         ezreq "$delitem löschen?" "Löschen|Abbruch" del
  169.         if $del = 1
  170.             lvdel -1
  171.         endif
  172.         update #this 2 $%item
  173.     else
  174.         flash
  175.     endif
  176. guiwindow #this resume
  177.  
  178.  
  179. XBUTTON 155 190 26 17 "/\"
  180. attr resize 2200
  181. gosub #this move up
  182.  
  183. XBUTTON 184 190 26 17 "\/"
  184. gosub #this move down
  185. attr resize 2200
  186.  
  187. xroutine move sel
  188.     lvuse #this 1
  189.     docase $sel
  190.       case = up
  191.                 if $$lv.line > 0
  192.                 and $$lv.total > 0
  193.                     new = $$lv.rec
  194.  
  195.                     lvgo prev
  196.                     old = $$lv.rec
  197.  
  198.                     lvput $new
  199.                     lvgo next
  200.  
  201.                     lvput $old
  202.                     lvgo prev
  203.  
  204.                     lvmove #$$lv.line
  205.                 else
  206.                     flash
  207.                 endif
  208.                 break
  209.       case = down
  210.                 if $$lv.total > 0
  211.                 and $$lv.line < $($$lv.total - 1)
  212.                     new = $$lv.rec
  213.  
  214.                     lvgo next
  215.                     old = $$lv.rec
  216.  
  217.                     lvput $new
  218.                     lvgo prev
  219.  
  220.                     lvput $old
  221.                     lvgo next
  222.  
  223.                     lvmove #$$lv.line
  224.                 else
  225.                     flash
  226.                 endif
  227.                 break
  228.     endcase
  229.     
  230.  
  231. XBUTTON -1 220 150 19 "Menü erstellen"
  232. attr resize 2200
  233.  
  234. lvuse #this 1
  235.  
  236. if $lv.total = 0
  237.     stop
  238. endif
  239.  
  240. lvsave t:prog-list.db
  241.  
  242. guiwindow #this wait
  243.  
  244. .SmartMenu = ""
  245. append env:.SmartMenu 'G4C\n\nWINBIG $*smleft $*smtop 155 11 "SmartMenu"'
  246. append env:.SmartMenu '\nWINTYPE 11010000'
  247. append env:.SmartMenu '\nWINFONT xhelvetica.font 9 000\n\n'
  248. append env:.SmartMenu 'xonload\n\tifexists assign ~smartmenu\n'
  249. append env:.SmartMenu '\t\textract #this guipath g4cmenupath\n'
  250. append env:.SmartMenu '\t\tassign smartmenu: \$\g4cmenupath'
  251. append env:.SmartMenu '\n\tendif\n\tguiopen #this\n'
  252. append env:.SmartMenu '\nxonclose\n\tguiquit #this\n\n'
  253. append env:.SmartMenu '\ntext 0 0 0 0 "©2002 by thenightshade@freenet.de" 40 nobox\n\n'
  254.  
  255. lvuse #this 1
  256.  
  257. lvgo first
  258.  
  259. while $$lv.line > ""
  260.     extract %item file item
  261.     extract item clean item
  262.     extract %menu clean mymenu
  263.     extract %name clean myname
  264.  
  265.     if $myname = ""
  266.         myname = $item
  267.         item = ""
  268.         key = ""
  269.     endif
  270.  
  271.     append env:.SmartMenu '\nxmenu "$mymenu" "$myname" "$item" "$key"\n'
  272.  
  273.     extract %prog clean myprog
  274.  
  275.     if $myprog != ""
  276.         ifexists file ~$myprog
  277.             append env:.SmartMenu 'run "$myprog"\n'
  278.         else
  279.             if $myprog H= G4C
  280.                 append env:.SmartMenu 'run "gui $myprog"\n'
  281.             else
  282.                 ifexists file $myprog\.info
  283.                     append env:.SmartMenu 'run "smartmenu:wbrun $myprog"\n'
  284.                 else
  285.                     append env:.SmartMenu 'run "$myprog"\n'
  286.                 endif
  287.             endif
  288.         endif
  289.     endif
  290.     lvgo next
  291. endwhile
  292.  
  293. copy env:.SmartMenu smartmenu:SmartMenu
  294. copy t:prog-list.db smartmenu:
  295. delete env:.SmartMenu
  296.  
  297. lvuse #this 1
  298.  
  299. lvgo first
  300.  
  301. update #this 1 0
  302.  
  303. update #this 2 $%item
  304.  
  305. flash
  306.  
  307. ifexists window SmartMenu
  308.     guiclose SmartMenu
  309.     guirename SmartMenu StartMenu2
  310.     guiquit StartMenu2
  311. endif
  312.  
  313. guiload smartmenu:SmartMenu
  314.  
  315. guiwindow #this resume
  316.  
  317.  
  318.  
  319. newfile editmenu
  320. winbig -1 -1 300 122 "Menü editieren"
  321. wintype 11000010
  322. usetopaz
  323. varpath "SmartMenuPrefs"
  324.  
  325. xonopen mode
  326.     guiwindow SmartMenuPrefs wait
  327.  
  328.     redraw #this
  329.  
  330.     docase $mode
  331.       case = new
  332.                 setgad #this 1/7 on
  333.                 setgad #this 1 on
  334.                 update #this 1 ""
  335.                 update #this 3 ""
  336.                 update #this 4 ""
  337.                 update #this 6 ""
  338.                 oldname = ""
  339.                 olditem = ""
  340.                 oldprog = ""
  341.                 break
  342.       case = edit
  343.                 lvuse SmartMenuPrefs 1
  344.                 extract %menu clean menu
  345.                 extract %name clean name
  346.                 extract %item clean item
  347.                 extract %prog clean prog
  348.                 if $name != BARLABEL
  349.                     oldname = $name
  350.                 else
  351.                     oldname = ""
  352.                 endif
  353.                 if $item != BARLABEL
  354.                     olditem = $item
  355.                 else
  356.                     olditem = ""
  357.                 endif
  358.                 if $prog != ""
  359.                     oldprog = $prog
  360.                 else
  361.                     oldprog = ""
  362.                 endif
  363.                 update #this 1 $prog
  364.                 update #this 3 $menu
  365.                 update #this 4 $name
  366.                 update #this 6 $item
  367.                 if $name = BARLABEL
  368.                     update #this 1 ""
  369.                     setgad #this 1/2 off
  370.                     update #this 6 ""
  371.                     setgad #this 6/7 off
  372.                 else
  373.                     setgad #this 6/7 on
  374.                 endif
  375.  
  376.                 if $item = BARLABEL
  377.                     update #this 1 ""
  378.                     setgad #this 1/2 off
  379.                     if $name = BARLABEL
  380.                         update #this 4 ""
  381.                         setgad #this 4/5 off
  382.                     else
  383.                         setgad #this 4/5 on
  384.                     endif
  385.                 else
  386.                     setgad #this 4/5 on
  387.                 endif
  388.  
  389.                 if $name != BARLABEL
  390.                 and $item != BARLABEL
  391.                     setgad #this 1/2 on
  392.                 endif
  393.                 break
  394.     endcase
  395.  
  396.  
  397.  
  398. xonclose
  399.     guiwindow SmartMenuPrefs resume
  400.  
  401.  
  402. box -1 -1 0 0 out button
  403. box 10 92 280 2 in ridge
  404. attr resize 0220
  405.  
  406.  
  407. XTEXTIN 90 10 170 18 "Proggy:" "prog" "" 256
  408. attr resize 0120
  409. gadid 1
  410. if $prog != ""
  411.     oldprog = $prog
  412. endif
  413.  
  414. XBUTTON 264 11 16 16 "<"
  415. attr resize 2100
  416. gadid 2
  417.     reqprog = ""
  418.     reqfile -1 -1 400 300 "Wähle ein Programm:" load reqprog sys:
  419.     if $reqprog != ""
  420.         extract reqprog clean prog
  421.         extract reqprog file myitem
  422.         lvuse SmartMenuPrefs 1
  423.         update #this 1 $prog
  424.         update #this 3 Start
  425.         if $%name = ""
  426.             update #this 4 ""
  427.         else
  428.             extract name clean myname
  429.             update #this 4 $myname
  430.         endif
  431.         update #this 6 $myitem
  432.     endif
  433.  
  434.  
  435. xtextin 90 30 190 18 "Titel:" "menu" "" 13
  436. attr resize 0120
  437. gadid 3
  438.  
  439.  
  440. xtextin 90 50 190 18 "Unter:" "name" "" 13
  441. attr resize 0120
  442. gadid 4
  443. if $name != BARLABEL
  444. or $name != barlabel
  445. or $name != Barlabel
  446. or $name != BarLabel
  447.     oldname = $name
  448. else
  449.     flash
  450.     update #this 4 $oldname
  451. endif
  452.  
  453.  
  454. xtextin 90 70 170 18 "Punkt:" "item" "" 13
  455. attr resize 0120
  456. gadid 6
  457. if $item != BARLABEL
  458. or $name != barlabel
  459. or $name != Barlabel
  460. or $name != BarLabel
  461.     olditem = $item
  462. else
  463.     flash
  464.     update #this 6 $olditem
  465. endif
  466.  
  467.  
  468. XBUTTON 264 71 16 16 "B"
  469. gadid 7
  470. attr resize 2100
  471.     if $barlabel2 != 1
  472.         update #this 6 BARLABEL
  473.         setgad #this 1/2 off
  474.         update #this 1 ""
  475.         setgad #this 6 off
  476.         setgad #this 5 off
  477.         update #this 4 ""
  478.         barlabel2 = 1
  479.     else
  480.         update #this 6 $olditem
  481.         setgad #this 1/2 on
  482.         update #this 1 $oldprog
  483.         setgad #this 6 on
  484.         setgad #this 5 on
  485.         update #this 4 $oldname
  486.         barlabel2 = 0
  487.     endif
  488.  
  489. xbutton -1 100 50 17 "Okay"
  490. attr resize 2200
  491.  
  492.     guiwindow #this wait
  493.  
  494.     if $menu = ""
  495.         flash
  496.         ezreq "Keinen Menü-Titel angegeben" "Upps" ""
  497.         goto skip
  498.         stop
  499.     endif
  500.  
  501.     if $item = BARLABEL
  502.         gosub #this add2list
  503.         goto skip
  504.         stop
  505.     endif
  506.  
  507.     if $item != BARLABEL
  508.     and $prog = ""
  509.         flash
  510.         ezreq "Kein Programm festgelegt" "Mist" ""
  511.         goto skip
  512.         stop
  513.     endif
  514.  
  515.     if $item != ""
  516.         gosub #this add2list
  517.     else
  518.         flash
  519.         ezreq "Keinen Menü-Punkt definiert" "Au Backe" ""
  520.     endif
  521.  
  522.     mark skip
  523.     guiwindow #this resume
  524.  
  525.  
  526. xroutine add2list
  527.     lvuse SmartMenuPrefs 1
  528.     if $mode = new
  529.         if $$lv.line < $($$lv.total - 1)
  530.             lvinsert $($$lv.line + 1) ""
  531.         else
  532.             lvadd ""
  533.         endif
  534.     endif
  535.     %menu = $menu
  536.     %name = $name
  537.     %item = $item
  538.     %prog = $prog
  539.     if $mode = new
  540.         update SmartMenuPrefs 1 $$lv.line
  541.     endif
  542.     update SmartMenuPrefs 2 $item
  543.     lvmove 0
  544.     guiclose #this
  545.  
  546.  
  547. newfile smenupos
  548. WINBIG 0 600 155 11 "Fensterposition"
  549. WINTYPE 11000000
  550. WINFONT xhelvetica.font 9 000
  551. varpath "SmartMenuPrefs"
  552.  
  553.  
  554. xonclose
  555.     guiwindow SmartMenuPrefs resume
  556.     if $savepos = 1
  557.         *smleft = $left
  558.         *smtop = $top
  559.     endif
  560.  
  561.  
  562. xonopen
  563.     guiwindow SmartMenuPrefs wait
  564.     savepos = 0
  565.     update #this 1 "X: $left Y: $top"
  566.  
  567.  
  568. xbutton 0 0 20 0 R
  569.     guiclose #this
  570.     info gui SmartMenu
  571.     left = $$win.left
  572.     top = $$win.top
  573.     changearg #this 0 0 $left
  574.     changearg #this 0 1 $top
  575.     guiopen smenupos
  576.     savepos = 1
  577.  
  578. xbutton 20 0 30 0 Pos
  579.     top = $$win.top
  580.     left = $$win.left
  581.     update #this 1 "X: $left Y: $top"
  582.     savepos = 1
  583.  
  584. text 50 0 85 0 "" 40 box
  585.     gadid 1
  586.  
  587. xbutton 135 0 20 0 X
  588.     savepos = 0
  589.     guiclose #this
  590.